#ifndef RP2OPENGLRESOURCES_H
#define RP2OPENGLRESOURCES_H

#include "Rp2Attributes.h"
#include "Rp2Bindable.h"

namespace Rp2
{

class VProgramID : public ResourceIdentifier
{
public:
	unsigned int ID; // OpenGL's identifier for the resource.
};

class PProgramID : public ResourceIdentifier
{
public:
	unsigned int ID; // OpenGL's identifier for the resource.
};

class TextureID : public ResourceIdentifier
{
public:
	unsigned int ID;
    Texture* TextureObject;
    unsigned int PBOHandle;  // For dynamic textures (pixel buffer objects).
};

class VBufferID : public ResourceIdentifier
{
public:
	Attributes IAttr; // For matching inputs when doing multipass.
	Attributes OAttr;
	unsigned int ID;  // OpenGL's identifier for the resource.
};

class IBufferID : public ResourceIdentifier
{
public:
	unsigned int ID; // OpenGL's identifier for the resource.
};

}

#endif